package com.example.lt.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.lt.pojo.entity.Song;
import com.example.lt.pojo.vo.SongVO;
import com.example.lt.result.Result;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @Author 小涛Tao
 * @Date: 2024/06/02/19:47
 * version 1.0 注释：
 **/
public interface SongService extends IService<Song> {

    /**
     * 添加新歌曲
     * @param song
     * @return
     */
    Result addSong(Song song, MultipartFile lrcFile, MultipartFile songFile);

    /**
     * 管理端更新歌曲的音频
     * @param urlFile
     * @param id
     * @return
     */
    Result updateSongUrl(MultipartFile urlFile, int id);

    /**
     * 管理端更新歌曲的图片
     * @param imgFile
     * @param id
     * @return
     */
    Result updateSongImg(MultipartFile imgFile, int id);

    /**
     * 管理端更新歌曲歌词
     * @param lrcFile
     * @param id
     * @return
     */
    Result updateSongLrc(MultipartFile lrcFile, int id);

    /**
     * 删除歌曲
     * @param id
     * @return
     */
    Result deleteSong(int id);

    /**
     * 根据歌曲id获取歌曲信息
     * @param id
     * @return
     */
    List<SongVO> getSongById(int id);

    /**
     * 根据歌手id获取歌曲
     * @param singerId
     * @return
     */
    List<SongVO> getSongBySingId(Integer singerId);

    /**
     * 根据歌曲名和歌手名来进行模糊查询歌曲信息
     * @return
     */
    Result<List<SongVO>> getSongLikeName(String name);

}
